package com.liveneo.adapter.mobile.service;

import java.util.Map;
import com.liveneo.adapter.mobile.model.request.AddLossItemRequest;
import com.liveneo.adapter.mobile.model.request.AssessLossItemRequest;
import com.liveneo.adapter.mobile.model.request.CallbackMsgRequest;
import com.liveneo.adapter.mobile.model.request.CaseListRequest;
import com.liveneo.adapter.mobile.model.request.LoginRequest;
import com.liveneo.adapter.mobile.model.request.LossItemRequest;
import com.liveneo.adapter.mobile.model.request.LossReassignRequest;
import com.liveneo.adapter.mobile.model.request.MsgListRequest;
import com.liveneo.adapter.mobile.model.request.OcrPayeeInfoRequest;
import com.liveneo.adapter.mobile.model.request.UpdateStatesRequest;
import com.liveneo.adapter.mobile.model.request.VersionRequest;
import com.liveneo.system.base.utils.AppException;

/** 
 * 校验的业务处理类
 * @author wangxx
 *
 * @since 2016-06-08
 */
public interface ValidateService {
    /**
     * 校验登陆时的参数
     * @param request 登陆的参数
     * @return 返回结果，其中结果包"result: 1.通过 2.不通过;
     * 			code:响应码; detailCode: 错误详情描述码  "
     */
    Map<String, Object> validateLogin(LoginRequest request);

    /**
     * 校验获取案件列表
     * 
     * @param request 获取案件列表的请求参数
     * @throws AppException 抛出校验的异常
     * 
     */
    void validateGetCaseList(CaseListRequest request) throws AppException;

    /** 
     * 校验 获取案件损失任务列表
     * @param request
     * @throws AppException
     */
    void validateGetLossItemList(LossItemRequest request) throws AppException;

    /**
     * 校验 获取定损单任务列表
     * @param request
     * @throws AppException
     */
    void valicateGetAssessLossItem(AssessLossItemRequest request) throws AppException;

    /**校验 获取定损单任务列表
     * @param request 请求的参数
     * @throws AppException 抛出校验的异常
     */
    void validateGetAssessLossItem(AssessLossItemRequest request) throws AppException;

    /**
     * 校验  增加损失任务
     * @param request 请求的参数
     * @throws AppException 抛出校验的异常
     */
    void validateAddLossItem(AddLossItemRequest request) throws AppException;

    /**校验 获取系统手机版本
    * @param request 请求的参数
    * @throws AppException 抛出校验的异常
    */
//    void validateGetVersion(VersionRequest request) throws AppException;

    /**
     * 校验增加支付信息
     * @param request 请求信息
     * @throws AppException 抛出校验的异常
     */
    void validateAddPayeeInfo(OcrPayeeInfoRequest request) throws AppException;

    /**
     * 校验 获取推送列表接口
     * @param request 请求参数
     * @throws AppException 抛出校验的异常
     */
    void validateMsgList(MsgListRequest request) throws AppException;

    /**
     * 校验 获取推送消息回调接口
     * @param request 回调的参数
     * @throws AppException 抛出校验的异常
     */
    void validateCallbackMsg(CallbackMsgRequest request) throws AppException;

    /**
     * 校验 更新推送消息状态
     * @param request 请求的参数
     * @throws AppException 抛出校验的异常
     */
    void validateMsgUpdateStatus(UpdateStatesRequest request) throws AppException;

    /** 
     * 校验 申请改派
     * @param request 请求的信息
     * @throws AppException 抛出校验的异常
     */
    void validateLossReassign(LossReassignRequest request) throws AppException;
}
